(XTread_socket): For UnmapNotify, if frame was visible,
authorRichard M. Stallman <rms@gnu.org>
Sun, 30 May 1993 02:46:05 +0000 (02:46 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sun, 30 May 1993 02:46:05 +0000 (02:46 +0000)
mark it now as iconified.
(x_make_frame_invisible): If async_iconic, work does need to be done.
Don't let this frame stay highlighted.
(x_iconify_frame): Don't let this frame stay highlighted.

src/xterm.c

index db0f61e8f1dd2a3c0233e7d569356b10a31bba2a..86b66f8fc8454420c520af0afc5838b186fdc3fd 100644 (file)
@@ -2813,6 +2813,12 @@ XTread_socket (sd, bufp, numchars, waitp, expected)
                 disabled; you don't want to spend time updating a
                 display that won't ever be seen.  */
              f->async_visible = 0;
+             /* The window manager never makes a window invisible
+                ("withdrawn"); all it does is switch between visible
+                and iconified.  Frames get into the invisible state
+                only through x_make_frame_invisible.
+             if (FRAME_VISIBLE_P (f) || FRAME_ICONIFIED_P (f))
+               f->async_iconified = 1;
            }
          break;
 
@@ -4280,7 +4286,11 @@ x_make_frame_invisible (f)
 {
   int mask;
 
-  if (! f->async_visible)
+  /* Don't keep the highlight on an invisible frame.  */
+  if (x_highlight_frame == f)
+    x_highlight_frame = 0;
+
+  if (! f->async_visible && ! f->async_iconified)
     return;
 
   BLOCK_INPUT;
@@ -4341,6 +4351,10 @@ x_iconify_frame (f)
 {
   int mask;
 
+  /* Don't keep the highlight on an invisible frame.  */
+  if (x_highlight_frame == f)
+    x_highlight_frame = 0;
+
   if (f->async_iconified)
     return;